<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<script>
    //    console.log("hello"+2 ,'hello'+true);
    //    console.log(2+true);
    //    console.log(parseInt(6.74546546));
    //    console.log(parseInt('132465'));
    //    console.log(parseInt('avd'));
    //    console.log(parseInt('124asff'));
    //    console.log(parseInt('adf132465'));
    //    console.log(parseFloat(6));
    //    console.log('----------');
    //    console.log('1'==1);
    //    console.log(1=='1');
    //    console.log(1==='1');
    //    console.log(1!=='1');
    //    console.log('计算eval:',eval(687+45*78/785-567+4245));
    ////    console.log('eval转换字典:',eval(name,zhangsan));
    //    console.log(typeof 45456);
    //    console.log(typeof 'hello');
    //    console.log(typeof true);
    //    console.log(typeof null);
    //    console.log(typeof undefined);
    //    console.log(typeof NaN);
    //    console.log(typeof[1,15,145,154,245]);
    //    console.log(typeof{"name":"zhangsan"});
    //    ++i,--i,i++,i--
    //    var i = 7;
    //    console.log('++i',++i);
    //    console.log(i)
    //    console.log('--i',--i);
    //    console.log(i)
    //    console.log('i++',i++);
    //    console.log(i)
    //    console.log('i--',i--);
    //    console.log(i)
    //
    //    var n=NaN
    //    console.log(n>5);
    //    console.log(n<5);
    //    console.log(n==5);
    //    console.log(n!=5);
    //    console.log(n=NaN);
    //    console.log(1&&'HELLO');
    //    console.log(1&&0);
    //    console.log(1||1);
    ////    console.log(1 ! 0);
    //    console.log(2==2);
    //    console.log(2=='2');
    //    console.log(2==='2');
    //    console.log(2===2);
    //    console.log(2>'20');
    //    console.log('3'>'20');
    //    console.log('3'>'28');
    //    -----------逻辑运算符--------------
    //   if('27'>'28'){
    //       console.log('yes')
    //   }else {
    //       alert('this is if --else ')
    //       console.log('nonono')
    //   }
    //   var  x=6;
    //    switch(x){
    //        case 1:y="星期一";    break;
    //        case 2:y="星期二";    break;
    //        case 3:y="星期三";    break;
    //        case 4:alert ("星期四");    break;
    //        case 5:alert ("星期五");    break;
    //        case 6:alert ("星期六");
    //        case 7:alert ("星期日");
    //        default: y="未定义";
    //    }
    //    alert(y)
    //    console.log(y)
    //    for(var i=1;i<10;i++){
    //        document.write("hello"+i+"<br>");
    //        console.log(i)
    //    }
    //
    //    var attr=[1,5,9,41,12,45,54,456];
    //    for(var j=0;j<7;j++){
    //        document.write(attr[j]+'<br>')
    //    }
    var elt_p = document.getElementsByTagName('p');
    for(var n=0; n< elt_p.length;n++){
        console.log(n);
        console.log(elt_p[n]);
    }
    var k=1,sum=0;
    while(k<=100){
        sum+=k;
        k++;
    }
    console.log(sum);
    var s=0;
    for(var i=1;i<=100;i++){
        s+=i;
    }
    document.write(s+'<br>');

    try{
        console.log(123);
        throw Error('define error');
    }
    catch(e){

        console.log(e)
    }
    finally {
        console.log('finally++++')
    }
    //-----------str对象----------------
    var str1='hello';
    var str2= new String("hello");

    console.log(str1)
    console.log(str2);
    console.log('l的为位置是：'+str2.indexOf('l'));
    console.log('最后一个l的为位置是：'+str2.lastIndexOf('l'));
    console.log('从1开始取3个：'+str2.substr(1,3));
    console.log('从1取到3：'+str2.substring(1,3));
    console.log('切片1-3：'+str2.slice(1,3));
    console.log('hello2切片-3 至-1：'+str2.slice(-3,-1));
    console.log(str2.match('ll'));
    //－－－－    字符串替换
    console.log(str2.replace('ll','MM'));
    //－－－－分割字符串
    var str1="一,二,三,四,五,六,日";
    var strArray=str1.split(",");
    console.log(strArray[1]);
    //－－－－    拼接字符串
    console.log(str1.concat(str2));
    console.log('------------------')
    console.log(str2+'长度'+str2.length);
    document.write(str1.italics()+'<br>');
    document.write(str1.charAt(4)+'<br>');
    document.write(str1.toUpperCase()+'<br>')
    document.write(str2.bold()+'<br>')
    document.write(str1.anchor(2)+'<br>')
    //---------------------数组对象Arrary--------------------------
    arr1=[1,4,45,49,[1,4,54,255,],{'name':'yuanhao'}]
    arr2=new Array(3);
    arr3= new Array(1,'word','true',[1,2,3]);
    var arr4=new Array(10)
    console.log(typeof arr1);
    console.log(typeof arr2);
    console.log(typeof arr3);
    console.log(typeof arr4);
    //1.join方法 拼接 (数组-转string)
    var arr = [11,55,'hello',true,656];

    var arr1 = arr.join('-'); //将数组元素拼接成字符串，内嵌到数组了，
    console.log(typeof arr1)
    alert(arr1);
    // 2.toString 所有对象都可使用的方法
    console.log(typeof arr1.toString());
    // 3.content 数组的拼接 单个拼接在最后
    var arr5=[1,2,5,16,56];
    console.log(arr5.concat([4555,555])); // [1, 2, 5, 16, 56, 4555, 555]
    // 4.toString
     console.log(arr5.toString()); //  1,2,5,16,56
     console.log(typeof arr5.toString());
    // 5.reverse 数组的翻转
    console.log(arr5.reverse()) ;//[56, 16, 5, 2, 1]
    // 6.sort 的排序  按最高位排序
    var arr6=[1,2,5,10,100,16,56];
    console.log(arr6.sort()) ; //  [1, 10, 100, 16, 2, 5, 56]
    // 7. 自定义按函数 按大小排序
    function f(a,b) {
        return a-b;
    }
    console.log('自定义按函数按大小排序arr6的结果是：'+arr6.sort(f)); // 1,2,5,10,16,56,100
    // 8.slice 切片 x.slice(start,end); 左取右不取
    var arr8=['a','b','c','d','e','f','g','h'];
    var arr80=arr8.slice(2,4);
    var arr81=arr8.slice(4);
    var arr82=arr8.slice(2,-1);
    console.log(arr80.toString());//结果为"c,d"
    console.log(arr81.toString());//结果为"e,f,g,h"
    console.log(arr82.toString());//结果为"c,d,e,f,g"

    // 9. x.splice 删除子数组 x.splice(start,end); 两边都能取到
    var a = [1,2,3,4,5,6,7,8];
    a.splice(1,2);
    console.log(a) ;//Array [ 1, 4, 5, 6, 7, 8 ]
    // 10.数组的push  // push作为一个整体被插入到原数组的后面
    var arr9=[10,51,1,52,48,549,4878,265,344];
    arr9.push([88,855,8888]);
    console.log(arr9);//  [10, 51, 1, 52, 48, 549, 4878, 265, 344, [88, 855, 8888]]
    arr9.push('hello','world');// 单独写开分开单独插入
    console.log(arr9)  ;//  [10, 51, 1, 52, 48, 549, 4878, 265, 344, [88, 855, 8888],'hello','world']
    console.log('arr9插入后的长度是：'+arr9.length);
    // 11.数组的pop 删除出栈、删除栈底的元素
    console.log(arr9.pop());//出栈元素是 world
    console.log('删除后的arr9',arr9);
    console.log('arr9删除后的长度是：'+arr9.length);
    // 12.数组的unshift 作为一个整体被插入到原数组的栈顶、
    var arr10=[51, 1, 52, 48, 549, 4878, 265, 344];
    var b=['hello','world'];
    arr10.unshift(b);
    console.log('插入元素之后的arr10是:',arr10);//[["hello", "world"], 51, 1, 52, 48, 549, 4878, 265, 344]
    arr10.unshift('111','222','你好','张三');
    console.log('插入元素之后的arr10是:',arr10);//  ["你好", "张三", ["hello", "world"], 51, 1, 52, 48, 549, 4878, 265, 344]
    // 12.数组的shift 删除出栈、删除栈顶的元素;
    var arr11 =["你好", "张三",["hello", "world"],51,1, 52, 48, 549, 4878, 265, 344];
    arr11.shift();// "你好"
    console.log('删除的元素是：',arr11.shift());// "张三"
    console.log('删除元素之后的arr11是:',arr11);
    console.log('删除元素之后的arr11的长度是:',arr11.length);
//    ------------------------------date 对象--------------------------------------------
    // 方式1 当前时间
    console.log('-------------------')
    var now1= new Date();
    var now = new Date();
    console.log(now1.toLocaleString()); //2018/9/25 下午6:37:16
    console.log(now.toLocaleDateString()); //2018/9/25
    // 方式2 制定时间
    var now2 = new Date('2004/2/3 11:12');
    var now3 = new Date('08/02/20 11:12'); //2020/8/2 上午11:12:00
    console.log(now2.toLocaleString());  //2004/2/3 上午11:12:00
    console.log(now3.toLocaleDateString()); //2020/8/2 上午11:12:00
    // 方式3 制定毫秒
    var now4 =new  Date(50000);
    console.log(now4.toLocaleString());  // 1970/1/1 上午8:00:50
    console.log(now4.toLocaleDateString()); // 1970/1/1
    console.log(now4.toUTCString()); // Thu, 01 Jan 1970 00:00:50 GMT
    //  打印这样的格式2017-09-25 17:36:星期一
    function  foo1() {
             var date = new Date();
             var year = date.getFullYear();
             var month = date.getMonth();
             var day= date.getDate();
             var hour = date.getHours();
             var min= date.getMinutes();
             var week = date.getDay();
            console.log('year',year);
            console.log('month',month);
            console.log('day',day);
            console.log('hour',hour);
            console.log('min',min);
             console.log('week',week);
             console.log('>>>>>>>>>>');
             var arr=['星期日','星期一','星期二','星期三','星期四','星期五','星期六'];
             console.log(arr[week]);
             console.log(year+'-'+chengemonth(month+1)+'-'+day+' '+hour+':'+min+':'+arr[week])
         }
    function  chengemonth(num) {
             if (num<10){
                     return  '0'+num
                 }
            else{
                  return num
                }
         }
    foo1();
    console.log(">>>><<<<<<<<<<")
    console.log(foo()) ; //没有返回值返回undefined
    //三元运算符
    console.log(2>1?2:1);
    //2.设置日期和时间

    //设置日期和时间
    //setDate(day_of_month)       设置日
    //setMonth (month)                 设置月
    //setFullYear (year)               设置年
    //setHours (hour)         设置小时
    //setMinutes (minute)     设置分钟
    //setSeconds (second)     设置秒
    //setMillliseconds (ms)       设置毫秒(0-999)
    //setTime (allms)     设置累计毫秒(从1970/1/1午夜)

    var x=new Date();
    x.setFullYear (2018);    //设置年2018
    x.setMonth(7);        //设置月7
    x.setDate(1);        //设置日1
    x.setHours(5);        //设置小时5
    x.setMinutes(12);    //设置分钟12
    x.setSeconds(54);    //设置秒54
    x.setMilliseconds(230);        //设置毫秒230
    document.write(x.toLocaleString( )+"<br>");
     //返回1997年8月1日5点12分54秒

    x.setTime(87040021); //设置累计毫秒数
    document.write(x.toLocaleString( )+"<br>");
    //返回1997年8月1日12点23分50秒









    //    var aa=Number.MAX_VALUE;
    //    //利用数字对象获取可表示最大数
    //    var bb=new String("hello JavaScript");
    //    //创建字符串对象
    //    var cc=new Date();
    //    //创建日期对象
    //    var dd=new Array("星期一","星期二","星期三","星期四");
    //    //数组对象

</script>
</body>
</html>